home *** CD-ROM | disk | FTP | other *** search
- package sun.util;
-
- import java.util.Locale;
- import java.util.Map;
- import java.util.Set;
- import java.util.spi.TimeZoneNameProvider;
- import sun.util.calendar.ZoneInfo;
-
- class TimeZoneNameUtility$TimeZoneNameGetter implements LocaleServiceProviderPool.LocalizedObjectGetter<TimeZoneNameProvider, String[]> {
- private static final TimeZoneNameUtility$TimeZoneNameGetter INSTANCE = new TimeZoneNameUtility$TimeZoneNameGetter();
- // $FF: synthetic field
- static final boolean $assertionsDisabled = !TimeZoneNameUtility.class.desiredAssertionStatus();
-
- private TimeZoneNameUtility$TimeZoneNameGetter() {
- }
-
- public String[] getObject(TimeZoneNameProvider var1, Locale var2, String var3, Object... var4) {
- if (!$assertionsDisabled && var4.length != 0) {
- throw new AssertionError();
- } else {
- String[] var5 = null;
- String var6 = var3;
- if (var3.equals("GMT")) {
- var5 = buildZoneStrings(var1, var2, var3);
- } else {
- Map var7 = ZoneInfo.getAliasTable();
- if (var7 != null) {
- if (var7.containsKey(var3)) {
- String var8;
- for(var8 = var3; (var6 = (String)var7.get(var6)) != null; var8 = var6) {
- }
-
- var6 = var8;
- }
-
- var5 = buildZoneStrings(var1, var2, var6);
- if (var5 == null) {
- var5 = examineAliases(var1, var2, var6, var7, var7.entrySet());
- }
- }
- }
-
- if (var5 != null) {
- var5[0] = var3;
- }
-
- return var5;
- }
- }
-
- private static String[] examineAliases(TimeZoneNameProvider var0, Locale var1, String var2, Map<String, String> var3, Set<Map.Entry<String, String>> var4) {
- if (var3.containsValue(var2)) {
- for(Map.Entry var6 : var4) {
- if (((String)var6.getValue()).equals(var2)) {
- String var7 = (String)var6.getKey();
- String[] var8 = buildZoneStrings(var0, var1, var7);
- if (var8 != null) {
- return var8;
- }
-
- var8 = examineAliases(var0, var1, var7, var3, var4);
- if (var8 != null) {
- return var8;
- }
- }
- }
- }
-
- return null;
- }
-
- private static String[] buildZoneStrings(TimeZoneNameProvider var0, Locale var1, String var2) {
- String[] var3 = new String[5];
-
- for(int var4 = 1; var4 <= 4; ++var4) {
- var3[var4] = var0.getDisplayName(var2, var4 >= 3, var4 % 2, var1);
- if (var4 >= 3 && var3[var4] == null) {
- var3[var4] = var3[var4 - 2];
- }
- }
-
- if (var3[1] == null) {
- var3 = null;
- }
-
- return var3;
- }
-
- // $FF: synthetic method
- static TimeZoneNameUtility$TimeZoneNameGetter access$000() {
- return INSTANCE;
- }
- }
-